/*
g4_avflash.h
必须使用C的方式包含
*/
#ifndef G4_AVFLASH_H
#define G4_AVFLASH_H

#include "main.h"

#pragma pack(1)
typedef struct
{ //1 1：空闲，1 0：有效，0 0：失效
	u16 h0; //0xffff表示有效或空闲,0表示失效
	u16 res0;
	u32 res1;
	u16 h1; //0xffff表示空闲,0表示有效
	u16 res2;
	u32 res3;
	u16 data[(128-16)/2]; //可用于配置数据存储的区域
} S_AV_FLASH; //大小必须是页大小的公约数
#pragma pack()

#define AV_HEAD_LEN (16)

//均匀擦写flash
//Flash擦除后值为0xffff
extern u32 AV_FLASH_START; //50K的位置
extern u32 AV_FLASH_LEN; //均匀擦写配置区域总长度(字节)

void *av_flash_read(void); //在均匀擦写Flash中读取数据，返回有效数据指针
int av_flash_write(u16 *p16,int n); //写，输入数据首指针，长度单位字节,必须在规定的大小内

#endif

